<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>bmqt_sessionoptions Component</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="bdedox.css" rel="stylesheet" type="text/css"/>
    <style>
      div.hanging {
        padding-left: 0.75in;
        text-indent: -0.50in;
      }
      div.unhanging {
        text-indent:     0in;
      }
      a.glossary {
        font-weight: bold;
        font-style: italic;
      }
    </style>
</head>
<!--
<body onload='searchBox.OnSelectItem(0);'>
-->
<body>

<table border=2 cellspacing=0 cellpadding=0 align=center>
<tr>
 <td valign=top align=center>
 <p align=center><b><i>Quick Links:</i></b></p>
 </td>
 <td valign=top align=center>
 <p align=center>
<a class="qindex" href="group__bmqa.html" target="_blank">bmqa</a> | <a class="qindex" href="group__bmqpi.html" target="_blank">bmqpi</a> | <a class="qindex" href="group__bmqt.html" target="_blank">bmqt</a>
 </td>
 </tr>
 </table>

  </div>
<!-- Generated by Doxygen 1.7.1 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul class="tablist">
      <li><a href="components.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="components.html"><span>Components</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#namespaces">Namespaces</a>  </div>
  <div class="headertitle">
<h1>Component bmqt_sessionoptions<br/>
<small>
[<a class="el" href="group__bmqt.html">Package bmqt</a>]</small>
</h1>  </div>
</div>
<div class="contents">

<p>Provide a value-semantic type to configure session with the broker.  
<a href="#_details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebmqpi.html">bmqpi</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacebmqt.html">bmqt</a></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<dl class="user"><dt><b>Outline</b></dt><dd><ul>
<li>
<a href="#1">Purpose</a> </li>
<li>
<a href="#2">Classes</a> </li>
<li>
<a href="#3">Description</a> </li>
</ul>
</dd></dl>
<dl class="user"><dt><b></b></dt><dd></dd></dl>
<dl class="user"><dt><b></b></dt><dd><a class="anchor" id="purpose"></a> <a class="anchor" id="1"></a> </dd></dl>
<dl class="user"><dt><b>Purpose: </b></dt><dd>Provide a value-semantic type to configure session with the broker. </dd></dl>
<dl class="user"><dt><b></b></dt><dd></dd></dl>
<dl class="user"><dt><b></b></dt><dd><a class="anchor" id="classes"></a> <a class="anchor" id="2"></a> </dd></dl>
<dl class="user"><dt><b>Classes: </b></dt><dd>BlazingMQ broker. </dd></dl>
<dl class="user"><dt><b></b></dt><dd></dd></dl>
<dl class="user"><dt><b></b></dt><dd><a class="anchor" id="description"></a> <a class="anchor" id="3"></a> </dd></dl>
<dl class="user"><dt><b>Description: </b></dt><dd><code><a class="el" href="classbmqt_1_1SessionOptions.html">bmqt::SessionOptions</a></code> provides a value-semantic type, <code>SessionOptions</code>, which is used to specify session-level configuration parameters. </dd></dl>
<dl class="user"><dt><b></b></dt><dd>Most applications should not need to change the parameters for creating a <code>Session</code>; the default parameters are fine. </dd></dl>
<dl class="user"><dt><b></b></dt><dd>The following parameters are supported: <ul>
<li>
<b>brokerUri</b>: <br/>
 Address of the broker to connect to. Default is to connect to the broker on the local host on the default port (30114). The format is <code>tcp://&lt;host&gt;:port</code>. Host can be: o an explicit hostname or <code>localhost</code> o an ip, example 10.11.12.13 o a DNS entry. In this case, the client will resolve the list of addresses from that entry, and try to connect to one of them. When the connection with the host goes down, it will automatically immediately failover and reconnects to another entry from the address list. If the environment variable <code>BMQ_BROKER_URI</code> is set, then instances of <code><a class="el" href="classbmqa_1_1Session.html">bmqa::Session</a></code> will ignore the <code>brokerUri</code> field from the provided <code>SessionOptions</code> and use the value from this environment variable instead.  </li>
<li>
<b>processNameOverride</b>: <br/>
 If not empty, use this value for the processName in the identity message (useful for scripted language bindings). This field is used in the broker's logs to more easily identify the client's process.  </li>
<li>
<b>numProcessingThreads</b>: <br/>
 Number of threads to use for processing events. Default is 1. Note that this setting has an effect only if providing a <code>SessionEventHandler</code> to the session.  </li>
<li>
<b>blobBufferSize</b>: <br/>
 Size (in bytes) of the blob buffers to use. Default value is 4k.  </li>
<li>
<b>channelHighWatermark</b>: <br/>
 Size (in bytes) to use for write cache high watermark on the channel. Default value is 128MB. This value is set on the <code>writeCacheHiWatermark</code> of the <code>btemt_ChannelPoolConfiguration</code> object used by the session with the broker. Note that BlazingMQ reserves 4MB of this value for control message, so the actual watermark for data published is <code>channelHighWatermark - 4MB</code>.  </li>
<li>
<b>statsDumpInterval</b>: <br/>
 Interval (in seconds) at which to dump stats in the logs. Set to 0 to disable recurring dump of stats (final stats are always dumped at end of session). Default is 5min. The value must be a multiple of 30s, in the range [0s - 60min].  </li>
<li>
<b>connectTimeout</b>,  </li>
<li>
<b>disconnetTimeout</b>,  </li>
<li>
<b>openQueueTimeout</b>,  </li>
<li>
<b>configureQueueTimeout</b>,  </li>
<li>
<b>closeQueueTimeout</b>, Default timeout to use for various operations.  </li>
<li>
<b>eventQueueLowWatermark</b>,  </li>
<li>
<b>eventQueueHighWatermark</b>, Parameters to configure the EventQueue notification watermarks thresholds. The EventQueue is the buffer of all incoming events from the broker (PUSH and ACK messages as well as session and queue operations result) pending being processed by the application code. A warning (<code><a class="el" href="structbmqt_1_1SessionEventType.html#aef449af38af76209352bf82f78b92529a269a213a5282c8241bdd6020f953e0ba" title="EventQueue is at highWatermark.">bmqt::SessionEventType::e_SLOWCONSUMER_HIGHWATERMARK</a></code>) is emitted when the buffer reaches the <code>highWatermark</code> value, and a notification (<code><a class="el" href="structbmqt_1_1SessionEventType.html#aef449af38af76209352bf82f78b92529a8ee502a6847a6edca339fc328815de89" title="EventQueue is at lowWatermark.">bmqt::SessionEventType::e_SLOWCONSUMER_NORMAL</a></code>) is sent when the buffer is back to the <code>lowWatermark</code>. The <code>highWatermark</code> typically would be reached in case of either a very slow consumer, causing events to accumulate in the buffer, or a huge burst of data. Setting the <code>highWatermark</code> to a high value should be done cautiously because it will potentially hide slowness of the consumer because of the enqueuing of PUSH events for a consumer, ACK events for a producer as well as all system events to the buffer (meaning that the messages may have a huge latency). Note, it is also recommended to have a reasonable distance between <code>highWatermark</code> and <code>lowWatermark</code> values to avoid a constant back and forth toggling of state resulting from push pop of events.  </li>
<li>
<b>hostHealthMonitor</b>: <br/>
 Optional instance of a class derived from <code><a class="el" href="classbmqpi_1_1HostHealthMonitor.html">bmqpi::HostHealthMonitor</a></code>, responsible for notifying the <code>Session</code> when the health of the host machine has changed. A <code>hostHealthMonitor</code> must be specified, in order for queues opened through the session to suspend on unhealthy hosts.  </li>
<li>
<b>traceOptions</b>: <br/>
 Provides the `bmqpiDTContext` and `bmqpiDTTracer` objects required for integration with a Distributed Trace framework. If these objects are provided, then the session will use them to create "spans" to represent requests made to the BlazingMQ broker on behalf of operations initiated by the client. This includes session-level operations (e.g., Session-Start, Session-Stop) as well as queue-level operations (e.g., Queue-Open, Queue-Configure, Queue-Close).  </li>
</ul>
</dd></dl>
<dl class="user"><dt><b></b></dt><dd></dd></dl>
</div>
<hr class="footer"/><address class="footer"><small>Generated on Thu Jun 15 2023 11:58:51 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.1 </small></address>
</body>
</html>
